When a passenger wishes to have a ride on an elevator, he/she will issue a call for an elevator by pressing a landing call button mounted at the floor. The control system of the elevator group receives the call for an elevator and tries to figure out which one of the elevators in the elevator group will be best able to serve the call. The activity is termed call allocation. The problem to be solved by allocation is how to find an elevators that will minimize a given cost factor. Allocation may aim at minimizing passengers, waiting time, passengers' traveling time, the number of times the elevator will atop or a combination of several cost factors weighted in different ways.
Traditionally, to establish which one of the elevators would be appropriate to serve a call, the reasoning is carried out individually for each case using complicated conditional structures. The final aim of this reasoning is to minimize a cost factor describing the operation of the elevator group, typically e.g. the call time or the average waiting time of the passengers. As the elevator group works in a complicated state space, the conditional structures are also complicated and they tend to have gaps, there appear situations in which the control is not functioning in an optimal way. Likewise, it is difficult to take the elevator group into consideration as a whole. A typical example of this is the traditional collective control, in which a landing call is served by the one of the elevators which is traveling in the direction toward the call at the closest distance from the calling floor. This simple optimization principle, however, leads to aggregation of the elevators, which means that the elevators are traveling in a front in the same direction, and therefore to a fall in the performance of the elevator group as a whole.